
import sys
import os
import io
import argparse
import json
import PyPDF2
# 解决print 中文乱码问题
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

# 获取命令行参数
parser = argparse.ArgumentParser()
# 文件数组
parser.add_argument('-filePath', type=str, default='[]', help='argument 1')
# 目录配置信息
parser.add_argument('-outputManage', type=str, default='{}', help='argument 2')

args = parser.parse_args()


def main_2(path, outputManage):
    # 获取路径配置信息、文件列表
    equalSource = json.loads(outputManage)['equalSource']
    outputPath = json.loads(outputManage)['outputPath']
    filePaths = json.loads(path)

    # 遍历文件路径数组
    for file in filePaths:
        # 获取文件名称
        file_name = os.path.splitext(file['fileName'])[0]
        # pdf 源文件目录
        pdf_parent_path = os.path.dirname(file['filePath'])
        docx_name = ''
        # 当equalSource为false时，转换的doc文件统一放在配置的目录中
        if equalSource == False:
            # docx文件名称，equalSource为false时
            docx_name = outputPath + '\\' + file_name
        else:
            # docx文件保存在源文件目录下
            docx_name = pdf_parent_path + '\\' + file_name

        # 读取pdf文件
        doc = open(file['filePath'], 'rb')
        # 创建一个pdf file reader 对象
        pdf_reader = PyPDF2.PdfReader(doc)
        pdf_writer = PyPDF2.PdfWriter()

        for page_index in range(len(pdf_reader.pages)):  # iterate over pdf pages
            page = pdf_reader.pages[page_index]  # get the page
            page.compress_content_streams()
            pdf_writer.add_page(page)

        output_file = open(docx_name + '_compress.pdf', 'wb')
        # 感觉好像没有什么用
        pdf_writer.write(output_file)
        doc.close()
        output_file.close()
        
        print(file['fileId'])


if __name__ == '__main__':
    main_2(args.filePath, args.outputManage)
